package com.tbit.uqbike.client.service;

import com.tbit.uqbike.client.pojo.ParkMachine;

import java.util.List;
import java.util.Map;

/**
 * 停车点设备管理service
 *
 * @author Leon
 * 2017年2月24日 下午4:09:17
 */
public interface ParkMachineService {
    /**
     * 添加
     *
     * @param maintainPark
     */
    void insert(ParkMachine parkMachine);

    /**
     * 根据设备id删除
     *
     * @param parkPointId
     */
    void del(Integer machineId);

    List<ParkMachine> getByMachineNOs(List<String> machineNOs);

    /**
     * 根据停车点id查询
     *
     * @return
     */
    List<ParkMachine> getByParkPointId(Integer parkPointId);

    /**
     * 根据设备id查询
     *
     * @return
     */
    ParkMachine getByMachineId(Integer machineId);

    /**
     * 获取停车点可用车辆
     *
     * @param parkPointId
     * @return
     */
    Integer getParkPointCanBorrowNum(Integer parkPointId);

    /**
     * 获取可用车辆属性 map<站点id,可用数量>
     * @param parkPointIds
     * @return
     */
    List<Map<String,Object>> getParkPointCanBorrowNums(List<Integer> parkPointIds);


    /**
     * 获取站点当前车辆数
     *
     * @param parkPointId
     * @return
     */
    Integer getParkPointCount(Integer parkPointId);

    /**
     * 更新
     *
     * @param parkMachine
     */
    void edit(ParkMachine parkMachine);

    /**
     * 校验设备是否在停车点
     * @param accountId 区域id
     * @param userCode 设备编号
     * @return 停车站点id,不为空则在停车点
     */
    Integer checkIfMachineInPark(Integer accountId,String  userCode);
}
